﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WF_Loadout_Editor
{
    public enum WarframeName
    {
        Ash = 0,
        Banshee,        // 1
        Ember,          // 2
        Excalibur,      // 3
        ExcaliburPrime, // 4
        Frost,          // 5
        Loki,           // 6
        Mag,            // 7
        Nyx,            // 8
        Rhino,          // 9
        Saryn,          // 10
        Trinity,        // 11
        Volt,           // 12
        MAX_WARFRAME    // 13
    }

    public class Warframe : BaseObject
    {
        private float baseHealth;
        public float BaseHealth
        {
            get { return baseHealth; }
            set { baseHealth = value; }
        }

        private float health;
        public float Health
        {
            get { return health; }
            set { health = value; }
        }

        private float baseShield;
        public float BaseShield
        {
            get { return baseShield; }
            set { baseShield = value; }
        }

        private float shield;
        public float Shield
        {
            get { return shield; }
            set { shield = value; }
        }

        private float baseEnergy;
        public float BaseEnergy
        {
            get { return baseEnergy; }
            set { baseEnergy = value; }
        }

        private float energy;
        public float Energy
        {
            get { return energy; }
            set { energy = value; }
        }

        private float baseArmor;
        public float BaseArmor
        {
            get { return baseArmor; }
            set { baseArmor = value; }
        }

        private float armor;
        public float Armor
        {
            get { return armor; }
            set { armor = value; }
        }

        private float baseStamina;
        public float BaseStamina
        {
            get { return baseStamina; }
            set { baseStamina = value; }
        }

        private float stamina;
        public float Stamina
        {
            get { return stamina; }
            set { stamina = value; }
        }

        private float baseShieldRecharge;
        public float BaseShieldRecharge
        {
            get { return baseShieldRecharge; }
            set { baseShieldRecharge = value; }
        }

        private float shieldRecharge;
        public float ShieldRecharge
        {
            get { return shieldRecharge; }
            set { shieldRecharge = value; }
        }

        private float baseStaminaRecharge;
        public float BaseStaminaRecharge
        {
            get { return baseStaminaRecharge; }
            set { baseStaminaRecharge = value; }
        }

        private float staminaRecharge;
        public float StaminaRecharge
        {
            get { return staminaRecharge; }
            set { staminaRecharge = value; }
        }

        private float baseSprintSpeed;
        public float BaseSprintSpeed
        {
            get { return baseSprintSpeed; }
            set { baseSprintSpeed = value; }
        }

        private float sprintSpeed;
        public float SprintSpeed
        {
            get { return sprintSpeed; }
            set { sprintSpeed = value; }
        }

        private bool hasHelmet;
        public bool HasHelmet
        {
            get { return hasHelmet; }
            set { hasHelmet = value; }
        }

        public Warframe()
        {
        }

        public Warframe(string name1, int level1, bool isSuperCharged1, List<Polarity> polarities1, ObjectType type1, float health1, float shield1, float energy1, float armor1, float stamina1, float shieldRecharge1, float staminaRecharge1, float sprintSpeed1)
            : base(name1, level1, isSuperCharged1, polarities1, type1)
        {
            health = baseHealth = health1;
            shield = baseShield = shield1;
            energy = baseEnergy = energy1;
            armor = baseArmor = armor1;
            stamina = baseStamina = stamina1;
            shieldRecharge = baseShieldRecharge = shieldRecharge1;
            staminaRecharge = baseStaminaRecharge = staminaRecharge1;
            sprintSpeed = baseSprintSpeed = sprintSpeed1;

            Polarity tempPol = new Polarity(5,-1);
            BaseMod tempMod = new BaseMod("Default", "Default", ModType.None, tempPol, 0.0f, 0.0f, 0, 0, 0);
            for (int i = 0; i < 2; ++i)
                Mods.Add(tempMod);
        }
    }
}
